/*
 * Copyright (c) 2018. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
 * Morbi non lorem porttitor neque feugiat blandit. Ut vitae ipsum eget quam lacinia accumsan.
 * Etiam sed turpis ac ipsum condimentum fringilla. Maecenas magna.
 * Proin dapibus sapien vel ante. Aliquam erat volutpat. Pellentesque sagittis ligula eget metus.
 * Vestibulum commodo. Ut rhoncus gravida arcu.
 */

package com.gov.dna.base.service;

import com.baomidou.mybatisplus.service.IService;
import com.gov.dna.base.mybatis.BasePage;

import java.util.List;

/**
 * 扩展IService
 * @author (作者) Dong Jie 154046519@qq.com
 * @version V1.0
 * @date 2018/12/5 21:28
 * @since (该版本支持的JDK版本) 1.8
 */
public interface BaseService<T> extends IService<T> {

	/**
	 * 根据id逻辑删除
	 * @author (作者) Dong Jie 154046519@qq.com
	 * @param o
	 * @return boolean
	 * @date 2018/12/6 14:40
	 */
	boolean logicalDeleteById(T o);

	/**
	 * 返回单个查询结果 没有返回null
	 * @author (作者) Dong Jie 154046519@qq.com
	 * @param o
	 * @return T
	 * @date 2018/12/5 21:09
	 */
	T findSingle(T o);



	/**
	 * 列表分页查询
	 * @author (作者) Dong Jie 154046519@qq.com
	 * @param o
	 * @param page 分页参数 按哪个字段排序 排序方式
	 * @return com.cloud.dips.common.core.mybatis.BasePage<T>
	 * @date 2018/12/5 21:28
	 */
	BasePage<T> findByPage(T o, BasePage<T> page);


	 /**
	  * 列表查询
	  * @author (作者) Dong Jie 154046519@qq.com
	  * @param o
	  * @param page 按哪个字段排序 排序方式
	  * @return java.util.List<T>
	  * @date 2018/12/5 21:28
	  */
	 List<T> find(T o, BasePage<T> page);


	/**
	 * 列表查询 不排序
	 * @author (作者) Dong Jie 154046519@qq.com
	 * @param o
	 * @return java.util.List<T>
	 * @date 2018/12/5 21:29
	 */
	 List<T> find(T o);
}
